package com.heihei.util;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Random;

/**
 *  集合工具类
 *
 * @version 1.0
 * @since JDK1.8
 * @author duanhengfei
 * @date 2021年01月29日 16:25:08
 */
public class CollectionUtilF {
    /**
     * 从list中，随机挑选出来指定条数目的元素，并返回
     * @param list 总集合
     * @param count 要挑选出来的数量
     * @return 返回挑选出来的集合
     */
    public static <T> List<T> selectRandomElementFromList(List<T> list, int count) {
        if(list.size() <= count) {
            return list;
        }
        Random random = new Random();
        HashSet<Integer> indexSet = new HashSet<>();
        while (indexSet.size() < count) {
            indexSet.add(random.nextInt(list.size()));
        }
        List<T> resultList = new ArrayList<T>();
        for (Integer index : indexSet) {
            resultList.add(list.get(index));
        }
        return resultList;
    }
}